1. Field of the Invention
This invention relates to a method and system for pre-installation of Virtual Private Servers in a data center or on a hardware server.
2. Description of the Related Art
Commercial hosting services are often provided by an Internet Service Provider (ISP), which generally provides a separate physical host computer for each customer on which to execute a server application. However, a customer purchasing hosting services will often neither require nor be amenable to paying for use of an entire host computer. In general, an individual customer will only require a fraction of the processing power, storage, and other resources of a host computer.
Accordingly, hosting multiple server applications on a single physical computer is desirable. In order to be commercially viable, however, every server application needs to be isolated from every other server application running on the same physical host. In that context, a single computer system (usually called a “host”) supports multiple virtual servers (e.g., Virtual Private Servers or VPSs), sometimes as many as hundreds or thousands of VPSs.
One of the primary benefits of using VPSs is the low cost of providing services, which does not require dedicating actual physical hardware to each user. Therefore, the ability to rapidly provide a new VPS to a user is a commercial advantage, given a substantial need in the marketplace for such services. Even though creating a VPS takes considerably less time than installation and configuration of a hardware server, nonetheless, the process of VPS creation on a hardware server that is already in use can require an interruption of service (thus, affecting other users), or consuming the resources of the hardware to a point where other users are affected, or effectively interrupting functionality of the hardware server, from the perspective of other users of that hardware server.
Accordingly, a mechanism is needed that provides for VPS creation without affecting the level of service provided to other users of the hardware server.
Many applications involving such virtualization concepts as Virtual Private Servers (VPS) involve the use of VPSs in the context of webservers. Such a VPS therefore has an assigned IP address, and various other parameters associated with a webserver, for example, a URL, a DNS name, etc.
A typical situation where VPSs can be used is a single “box” (in other words, a single computer) located in a data center has a host operating system a plurality of VPSs (VPS 1, VPS 2, VPS 3, etc.), each of which appears to the user as a single dedicated webserver. The user is therefore unaware that the VPS is something other than an entire “box” dedicated to that particular user.
One of the problems in modern Virtual Private Server development is the sheer volume of the files and data required to support a typical VPS. Currently, the total volume of a disk drive partition typically allocated to each VPS is on the order of several hundred megabytes, and sometimes several gigabytes, of disk space. This does not include any user application files—this only represents the files that are required by the VPS itself to function.
A common situation that occurs with a Virtual Private Server is that new Virtual Private Servers need to be created with some frequency. For example a user might want to dedicate a particular Virtual Private Server to handling a specific URL, or a particular IP address, in addition to other Virtual Private Servers that user already owns. Alternatively, with VPS technology rapidly improving, and web hosting costs falling, ordinary users of the Internet are launching their own web sites. Each such web site can require a dedicated Virtual Private Server. Thus, the problem of creation of a new Virtual Private Server is a relatively routine task for a data center or a web hosting provider.
One of the problems that exist in the creation of a new Virtual Private Server is the length of time that the various operations for setting up the VPS require. A typical Virtual Private Server can have thousands (or even tens of thousands) of files that need to be copied to some dedicated storage space, disk partition, dedicated network drive or portion of a network drive, etc. The large number of files that have to be copied means that the copy process can be time consuming, on the order of many seconds, or even many minutes (or in some cases tens of minutes). Furthermore, the process of copying of the files can consume a significant share of network bandwidth (if the copying of the VPS files is done over a network). Alternatively, even if the copying is done from and to the same physical hard drive, the bandwidth the particular peripheral device may be used up to a point where the physical computer (which also handles many other tasks) is either unable to do so in a practical manner, or the speed with which it performs its other tasks is degraded.
Also, the disk space required for VPS files can be on the order of several gigabytes, which, given finite network and device bandwidth, can mean many minutes of copy time.
Thus, many hosting or data centers provide the users with relatively easy tools to set up their own VPS, particularly for web hosting. Essentially, the user can log into the provider's site, configure the VPS in a configuration that he desires, press “enter,” and the hosting provider will, at some point down the road, provide a configured VPS for the user.
In other words, the problem is two-fold: either the process of creating the VPS takes a relatively long time (such that many users might think that the process has failed, given that many users are accustomed to nearly instantaneous response from Internet entities, or the process is so resource intensive that nothing else is effectively done while the particular VPS requested by the user is created.
In fact, depending on system load, process requirements, bandwidth of the network and the peripheral devices, the process of creating a VPS can take even tens of minutes, and perhaps even hours.
In other words, what is needed is a system and method for a user to press a “button” on his web browser to “create” a VPS, and the entire process is relatively rapid and interactive, taking no more than a couple of minutes, or, even preferably, on the order of 10-20 seconds.